\section{globals.\+h File Reference}
\label{globals_8h}\index{globals.\+h@{globals.\+h}}


Global definitions and macros.  


\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ ec\+\_\+sii\+\_\+coe\+\_\+details\+\_\+t}
\begin{DoxyCompactList}\small\item\em Slave information interface C\+A\+Nopen over Ether\+C\+AT details flags. \end{DoxyCompactList}\item 
struct \textbf{ ec\+\_\+sii\+\_\+general\+\_\+flags\+\_\+t}
\begin{DoxyCompactList}\small\item\em Slave information interface general flags. \end{DoxyCompactList}\item 
struct \textbf{ ec\+\_\+sync\+\_\+signal\+\_\+t}
\begin{DoxyCompactList}\small\item\em Ether\+C\+AT slave sync signal configuration. \end{DoxyCompactList}\item 
struct \textbf{ ec\+\_\+code\+\_\+msg\+\_\+t}
\begin{DoxyCompactList}\small\item\em Code/\+Message pair. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ E\+C\+\_\+\+I\+O\+\_\+\+T\+I\+M\+E\+O\+UT}~500
\begin{DoxyCompactList}\small\item\em Datagram timeout in microseconds. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+S\+D\+O\+\_\+\+I\+N\+J\+E\+C\+T\+I\+O\+N\+\_\+\+T\+I\+M\+E\+O\+UT}~10000
\begin{DoxyCompactList}\small\item\em S\+DO injection timeout in microseconds. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+B\+Y\+T\+E\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+T\+I\+M\+E\+\_\+\+NS}~80
\begin{DoxyCompactList}\small\item\em Time to send a byte in nanoseconds. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+F\+S\+M\+\_\+\+R\+E\+T\+R\+I\+ES}~3
\begin{DoxyCompactList}\small\item\em Number of state machine retries on datagram timeout. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+W\+A\+I\+T\+\_\+\+S\+D\+O\+\_\+\+D\+I\+CT}~3
\begin{DoxyCompactList}\small\item\em Seconds to wait before fetching S\+DO dictionary after slave entered P\+R\+E\+OP state. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+S\+I\+ZE}~32
\begin{DoxyCompactList}\small\item\em Minimum size of a buffer used with \doxyref{ec\+\_\+state\+\_\+string()}{p.}{globals_8h_a5492e579e30e1bb9351cd601a89e238b}. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+M\+A\+X\+\_\+\+S\+I\+I\+\_\+\+S\+I\+ZE}~4096
\begin{DoxyCompactList}\small\item\em Maximum S\+II size in words, to avoid infinite reading. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+R\+A\+T\+E\+\_\+\+C\+O\+U\+NT}~3
\begin{DoxyCompactList}\small\item\em Number of statistic rate intervals to maintain. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+F\+R\+A\+M\+E\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}~2
\begin{DoxyCompactList}\small\item\em Size of an Ether\+C\+AT frame header. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}~10
\begin{DoxyCompactList}\small\item\em Size of an Ether\+C\+AT datagram header. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+F\+O\+O\+T\+E\+R\+\_\+\+S\+I\+ZE}~2
\begin{DoxyCompactList}\small\item\em Size of an Ether\+C\+AT datagram footer. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+A\+D\+D\+R\+\_\+\+L\+EN}~4
\begin{DoxyCompactList}\small\item\em Size of the Ether\+C\+AT address field. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+M\+A\+X\+\_\+\+D\+A\+T\+A\+\_\+\+S\+I\+ZE}
\begin{DoxyCompactList}\small\item\em Resulting maximum data size of a single datagram in a frame. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}~6
\begin{DoxyCompactList}\small\item\em Mailbox header size. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+F\+I\+R\+S\+T\+\_\+\+S\+I\+I\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+O\+F\+F\+S\+ET}~0x40
\begin{DoxyCompactList}\small\item\em Word offset of first S\+II category. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE}~8
\begin{DoxyCompactList}\small\item\em Size of a sync manager configuration page. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+M\+A\+X\+\_\+\+F\+M\+M\+US}~16
\begin{DoxyCompactList}\small\item\em Maximum number of F\+M\+M\+Us per slave. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+F\+M\+M\+U\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE}~16
\begin{DoxyCompactList}\small\item\em Size of an F\+M\+MU configuration page. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+C\+O\+U\+NT}~2
\begin{DoxyCompactList}\small\item\em Number of DC sync signals. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+N\+A\+M\+E\+\_\+\+S\+I\+ZE}~20
\begin{DoxyCompactList}\small\item\em Size of the datagram description string. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+M\+A\+SK}~0x0F
\begin{DoxyCompactList}\small\item\em Slave state mask. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+I\+N\+FO}(fmt,  args...)~printk(K\+E\+R\+N\+\_\+\+I\+N\+FO \char`\"{}Ether\+C\+A\+T\+: \char`\"{} fmt, \#\#args)
\begin{DoxyCompactList}\small\item\em Convenience macro for printing Ether\+C\+A\+T-\/specific information to syslog. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+E\+RR}(fmt,  args...)~printk(K\+E\+R\+N\+\_\+\+E\+RR \char`\"{}Ether\+C\+AT E\+R\+R\+O\+R\+: \char`\"{} fmt, \#\#args)
\begin{DoxyCompactList}\small\item\em Convenience macro for printing Ether\+C\+A\+T-\/specific errors to syslog. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+W\+A\+RN}(fmt,  args...)~printk(K\+E\+R\+N\+\_\+\+W\+A\+R\+N\+I\+NG \char`\"{}Ether\+C\+AT W\+A\+R\+N\+I\+N\+G\+: \char`\"{} fmt, \#\#args)
\begin{DoxyCompactList}\small\item\em Convenience macro for printing Ether\+C\+A\+T-\/specific warnings to syslog. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+D\+BG}(fmt,  args...)~printk(K\+E\+R\+N\+\_\+\+D\+E\+B\+UG \char`\"{}Ether\+C\+AT D\+E\+B\+U\+G\+: \char`\"{} fmt, \#\#args)
\begin{DoxyCompactList}\small\item\em Convenience macro for printing Ether\+C\+AT debug messages to syslog. \end{DoxyCompactList}\item 
\mbox{\label{globals_8h_a13c6887b44e71940bf7c8bdde8075d82}} 
\#define \textbf{ E\+C\+\_\+\+A\+BS}(X)~((X) $>$= 0 ? (X) \+: -\/(X))
\begin{DoxyCompactList}\small\item\em Absolute value. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \textbf{ ec\+\_\+slave} \textbf{ ec\+\_\+slave\+\_\+t}
\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ ec\+\_\+slave\+\_\+state\+\_\+t} \{ \newline
\textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+U\+N\+K\+N\+O\+WN} = 0x00, 
\textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+I\+N\+IT} = 0x01, 
\textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+P\+R\+E\+OP} = 0x02, 
\textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+B\+O\+OT} = 0x03, 
\newline
\textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+A\+F\+E\+OP} = 0x04, 
\textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+OP} = 0x08, 
\textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+A\+C\+K\+\_\+\+E\+RR} = 0x10
 \}\begin{DoxyCompactList}\small\item\em State of an Ether\+C\+AT slave. \end{DoxyCompactList}
\item 
enum \{ \newline
\textbf{ E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+A\+OE} = 0x01, 
\textbf{ E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+E\+OE} = 0x02, 
\textbf{ E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+C\+OE} = 0x04, 
\textbf{ E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+F\+OE} = 0x08, 
\newline
\textbf{ E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+S\+OE} = 0x10, 
\textbf{ E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+V\+OE} = 0x20
 \}\begin{DoxyCompactList}\small\item\em Supported mailbox protocols. \end{DoxyCompactList}
\item 
enum \textbf{ ec\+\_\+slave\+\_\+dc\+\_\+range\+\_\+t} \{ \textbf{ E\+C\+\_\+\+D\+C\+\_\+32}, 
{\bfseries E\+C\+\_\+\+D\+C\+\_\+64}
 \}\begin{DoxyCompactList}\small\item\em Ether\+C\+AT slave distributed clocks range. \end{DoxyCompactList}
\item 
enum \{ \textbf{ E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+P\+R\+E\+OP}, 
\textbf{ E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+S\+A\+F\+E\+OP}, 
\textbf{ E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+OP}, 
\textbf{ E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+C\+O\+U\+NT}
 \}\begin{DoxyCompactList}\small\item\em Access states for S\+DO entries. \end{DoxyCompactList}
\item 
enum \textbf{ ec\+\_\+device\+\_\+index\+\_\+t} \{ \textbf{ E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+M\+A\+IN}, 
\textbf{ E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+B\+A\+C\+K\+UP}
 \}\begin{DoxyCompactList}\small\item\em Master devices. \end{DoxyCompactList}
\item 
enum \textbf{ ec\+\_\+internal\+\_\+request\+\_\+state\+\_\+t} \{ \newline
{\bfseries E\+C\+\_\+\+I\+N\+T\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+I\+N\+IT}, 
{\bfseries E\+C\+\_\+\+I\+N\+T\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+Q\+U\+E\+U\+ED}, 
{\bfseries E\+C\+\_\+\+I\+N\+T\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+B\+U\+SY}, 
{\bfseries E\+C\+\_\+\+I\+N\+T\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+S\+U\+C\+C\+E\+SS}, 
\newline
{\bfseries E\+C\+\_\+\+I\+N\+T\+\_\+\+R\+E\+Q\+U\+E\+S\+T\+\_\+\+F\+A\+I\+L\+U\+RE}
 \}\begin{DoxyCompactList}\small\item\em Generic request state. \end{DoxyCompactList}
\item 
enum \textbf{ ec\+\_\+origin\+\_\+t} \{ \textbf{ E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+I\+N\+T\+E\+R\+N\+AL}, 
\textbf{ E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+E\+X\+T\+E\+R\+N\+AL}
 \}\begin{DoxyCompactList}\small\item\em Origin type. \end{DoxyCompactList}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\label{globals_8h_a4262f13e24a72428a0760f9e4e910597}} 
unsigned int \textbf{ ec\+\_\+master\+\_\+count} (void)
\begin{DoxyCompactList}\small\item\em Get the number of masters. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+print\+\_\+data} (const uint8\+\_\+t $\ast$, size\+\_\+t)
\begin{DoxyCompactList}\small\item\em Outputs frame contents for debugging purposes. \end{DoxyCompactList}\item 
\mbox{\label{globals_8h_a2e3a18636f05dd048ddd4fd455d07983}} 
void \textbf{ ec\+\_\+print\+\_\+data\+\_\+diff} (const uint8\+\_\+t $\ast$, const uint8\+\_\+t $\ast$, size\+\_\+t)
\begin{DoxyCompactList}\small\item\em Outputs frame contents and differences for debugging purposes. \end{DoxyCompactList}\item 
size\+\_\+t \textbf{ ec\+\_\+state\+\_\+string} (uint8\+\_\+t, char $\ast$, uint8\+\_\+t)
\begin{DoxyCompactList}\small\item\em Prints slave states in clear text. \end{DoxyCompactList}\item 
ssize\+\_\+t \textbf{ ec\+\_\+mac\+\_\+print} (const uint8\+\_\+t $\ast$, char $\ast$)
\begin{DoxyCompactList}\small\item\em Print a M\+AC address to a buffer. \end{DoxyCompactList}\item 
int \textbf{ ec\+\_\+mac\+\_\+is\+\_\+zero} (const uint8\+\_\+t $\ast$)
\item 
\textbf{ ec\+\_\+master\+\_\+t} $\ast$ \textbf{ ecrt\+\_\+request\+\_\+master\+\_\+err} (unsigned int)
\begin{DoxyCompactList}\small\item\em Request a master. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\label{globals_8h_ab60dd3400b4ae7f326c3edb327505829}} 
const char $\ast$ \textbf{ ec\+\_\+device\+\_\+names} [2]
\begin{DoxyCompactList}\small\item\em Device names. \end{DoxyCompactList}\item 
char $\ast$ \textbf{ ec\+\_\+master\+\_\+version\+\_\+str}
\begin{DoxyCompactList}\small\item\em Version string. \end{DoxyCompactList}\item 
const \textbf{ ec\+\_\+request\+\_\+state\+\_\+t} \textbf{ ec\+\_\+request\+\_\+state\+\_\+translation\+\_\+table} [$\,$]
\begin{DoxyCompactList}\small\item\em Global request state type translation table. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Global definitions and macros. 



\subsection{Macro Definition Documentation}
\mbox{\label{globals_8h_a58d5397d9106471647af3135e26fa09b}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+I\+O\+\_\+\+T\+I\+M\+E\+O\+UT@{E\+C\+\_\+\+I\+O\+\_\+\+T\+I\+M\+E\+O\+UT}}
\index{E\+C\+\_\+\+I\+O\+\_\+\+T\+I\+M\+E\+O\+UT@{E\+C\+\_\+\+I\+O\+\_\+\+T\+I\+M\+E\+O\+UT}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+I\+O\+\_\+\+T\+I\+M\+E\+O\+UT}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+I\+O\+\_\+\+T\+I\+M\+E\+O\+UT~500}



Datagram timeout in microseconds. 



Definition at line 47 of file globals.\+h.

\mbox{\label{globals_8h_adfd4f1137907ae9ac52dd2cd4524d775}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+D\+O\+\_\+\+I\+N\+J\+E\+C\+T\+I\+O\+N\+\_\+\+T\+I\+M\+E\+O\+UT@{E\+C\+\_\+\+S\+D\+O\+\_\+\+I\+N\+J\+E\+C\+T\+I\+O\+N\+\_\+\+T\+I\+M\+E\+O\+UT}}
\index{E\+C\+\_\+\+S\+D\+O\+\_\+\+I\+N\+J\+E\+C\+T\+I\+O\+N\+\_\+\+T\+I\+M\+E\+O\+UT@{E\+C\+\_\+\+S\+D\+O\+\_\+\+I\+N\+J\+E\+C\+T\+I\+O\+N\+\_\+\+T\+I\+M\+E\+O\+UT}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+S\+D\+O\+\_\+\+I\+N\+J\+E\+C\+T\+I\+O\+N\+\_\+\+T\+I\+M\+E\+O\+UT}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+S\+D\+O\+\_\+\+I\+N\+J\+E\+C\+T\+I\+O\+N\+\_\+\+T\+I\+M\+E\+O\+UT~10000}



S\+DO injection timeout in microseconds. 



Definition at line 50 of file globals.\+h.

\mbox{\label{globals_8h_a0947a510c37156d1f69ff64903579631}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+B\+Y\+T\+E\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+T\+I\+M\+E\+\_\+\+NS@{E\+C\+\_\+\+B\+Y\+T\+E\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+T\+I\+M\+E\+\_\+\+NS}}
\index{E\+C\+\_\+\+B\+Y\+T\+E\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+T\+I\+M\+E\+\_\+\+NS@{E\+C\+\_\+\+B\+Y\+T\+E\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+T\+I\+M\+E\+\_\+\+NS}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+B\+Y\+T\+E\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+T\+I\+M\+E\+\_\+\+NS}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+B\+Y\+T\+E\+\_\+\+T\+R\+A\+N\+S\+M\+I\+S\+S\+I\+O\+N\+\_\+\+T\+I\+M\+E\+\_\+\+NS~80}



Time to send a byte in nanoseconds. 

t\+\_\+ns = 1 / (100 M\+Bit/s / 8 bit/byte) = 80 ns/byte 

Definition at line 56 of file globals.\+h.

\mbox{\label{globals_8h_a23a5e3d7f269f14bea7017438c72d208}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+F\+S\+M\+\_\+\+R\+E\+T\+R\+I\+ES@{E\+C\+\_\+\+F\+S\+M\+\_\+\+R\+E\+T\+R\+I\+ES}}
\index{E\+C\+\_\+\+F\+S\+M\+\_\+\+R\+E\+T\+R\+I\+ES@{E\+C\+\_\+\+F\+S\+M\+\_\+\+R\+E\+T\+R\+I\+ES}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+F\+S\+M\+\_\+\+R\+E\+T\+R\+I\+ES}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+F\+S\+M\+\_\+\+R\+E\+T\+R\+I\+ES~3}



Number of state machine retries on datagram timeout. 



Definition at line 59 of file globals.\+h.

\mbox{\label{globals_8h_a54806e076fcb6f09b945393273530c13}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+W\+A\+I\+T\+\_\+\+S\+D\+O\+\_\+\+D\+I\+CT@{E\+C\+\_\+\+W\+A\+I\+T\+\_\+\+S\+D\+O\+\_\+\+D\+I\+CT}}
\index{E\+C\+\_\+\+W\+A\+I\+T\+\_\+\+S\+D\+O\+\_\+\+D\+I\+CT@{E\+C\+\_\+\+W\+A\+I\+T\+\_\+\+S\+D\+O\+\_\+\+D\+I\+CT}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+W\+A\+I\+T\+\_\+\+S\+D\+O\+\_\+\+D\+I\+CT}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+W\+A\+I\+T\+\_\+\+S\+D\+O\+\_\+\+D\+I\+CT~3}



Seconds to wait before fetching S\+DO dictionary after slave entered P\+R\+E\+OP state. 



Definition at line 63 of file globals.\+h.

\mbox{\label{globals_8h_a1de201db5fcf72a3acf152700008e083}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+S\+I\+ZE}}
\index{E\+C\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+S\+I\+ZE}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+S\+I\+ZE~32}



Minimum size of a buffer used with \doxyref{ec\+\_\+state\+\_\+string()}{p.}{globals_8h_a5492e579e30e1bb9351cd601a89e238b}. 



Definition at line 66 of file globals.\+h.

\mbox{\label{globals_8h_a01c6518f4ab51df91aca7b61d56c4035}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+M\+A\+X\+\_\+\+S\+I\+I\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+M\+A\+X\+\_\+\+S\+I\+I\+\_\+\+S\+I\+ZE}}
\index{E\+C\+\_\+\+M\+A\+X\+\_\+\+S\+I\+I\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+M\+A\+X\+\_\+\+S\+I\+I\+\_\+\+S\+I\+ZE}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+M\+A\+X\+\_\+\+S\+I\+I\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+M\+A\+X\+\_\+\+S\+I\+I\+\_\+\+S\+I\+ZE~4096}



Maximum S\+II size in words, to avoid infinite reading. 



Definition at line 69 of file globals.\+h.

\mbox{\label{globals_8h_a00b477d166c2d09b9fea5d43c0c1cd48}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+R\+A\+T\+E\+\_\+\+C\+O\+U\+NT@{E\+C\+\_\+\+R\+A\+T\+E\+\_\+\+C\+O\+U\+NT}}
\index{E\+C\+\_\+\+R\+A\+T\+E\+\_\+\+C\+O\+U\+NT@{E\+C\+\_\+\+R\+A\+T\+E\+\_\+\+C\+O\+U\+NT}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+R\+A\+T\+E\+\_\+\+C\+O\+U\+NT}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+R\+A\+T\+E\+\_\+\+C\+O\+U\+NT~3}



Number of statistic rate intervals to maintain. 



Definition at line 72 of file globals.\+h.

\mbox{\label{globals_8h_a5adae0638188319662b058ab045226fa}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+F\+R\+A\+M\+E\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+F\+R\+A\+M\+E\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}}
\index{E\+C\+\_\+\+F\+R\+A\+M\+E\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+F\+R\+A\+M\+E\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+F\+R\+A\+M\+E\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+F\+R\+A\+M\+E\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE~2}



Size of an Ether\+C\+AT frame header. 



Definition at line 79 of file globals.\+h.

\mbox{\label{globals_8h_a6c4982c6eac314abb0768e05774237a8}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}}
\index{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE~10}



Size of an Ether\+C\+AT datagram header. 



Definition at line 82 of file globals.\+h.

\mbox{\label{globals_8h_aaec3f4b21567ed1271af111a6b09f43a}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+F\+O\+O\+T\+E\+R\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+F\+O\+O\+T\+E\+R\+\_\+\+S\+I\+ZE}}
\index{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+F\+O\+O\+T\+E\+R\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+F\+O\+O\+T\+E\+R\+\_\+\+S\+I\+ZE}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+F\+O\+O\+T\+E\+R\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+F\+O\+O\+T\+E\+R\+\_\+\+S\+I\+ZE~2}



Size of an Ether\+C\+AT datagram footer. 



Definition at line 85 of file globals.\+h.

\mbox{\label{globals_8h_a636410fd74a8e87229296654da52d250}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+A\+D\+D\+R\+\_\+\+L\+EN@{E\+C\+\_\+\+A\+D\+D\+R\+\_\+\+L\+EN}}
\index{E\+C\+\_\+\+A\+D\+D\+R\+\_\+\+L\+EN@{E\+C\+\_\+\+A\+D\+D\+R\+\_\+\+L\+EN}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+A\+D\+D\+R\+\_\+\+L\+EN}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+A\+D\+D\+R\+\_\+\+L\+EN~4}



Size of the Ether\+C\+AT address field. 



Definition at line 88 of file globals.\+h.

\mbox{\label{globals_8h_a1e04c301942ee12b54c2caa25d3caab5}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+M\+A\+X\+\_\+\+D\+A\+T\+A\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+M\+A\+X\+\_\+\+D\+A\+T\+A\+\_\+\+S\+I\+ZE}}
\index{E\+C\+\_\+\+M\+A\+X\+\_\+\+D\+A\+T\+A\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+M\+A\+X\+\_\+\+D\+A\+T\+A\+\_\+\+S\+I\+ZE}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+M\+A\+X\+\_\+\+D\+A\+T\+A\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+M\+A\+X\+\_\+\+D\+A\+T\+A\+\_\+\+S\+I\+ZE}

{\bfseries Value\+:}
\begin{DoxyCode}
(ETH\_DATA\_LEN - EC_FRAME_HEADER_SIZE \(\backslash\)
                          - EC_DATAGRAM_HEADER_SIZE - EC_DATAGRAM_FOOTER_SIZE)
\end{DoxyCode}


Resulting maximum data size of a single datagram in a frame. 



Definition at line 91 of file globals.\+h.

\mbox{\label{globals_8h_a189582ffd5ea94b41b00482c04968291}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}}
\index{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE~6}



Mailbox header size. 



Definition at line 95 of file globals.\+h.

\mbox{\label{globals_8h_a53e014f821fa17635fa4ad260fce2512}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+F\+I\+R\+S\+T\+\_\+\+S\+I\+I\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+O\+F\+F\+S\+ET@{E\+C\+\_\+\+F\+I\+R\+S\+T\+\_\+\+S\+I\+I\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+O\+F\+F\+S\+ET}}
\index{E\+C\+\_\+\+F\+I\+R\+S\+T\+\_\+\+S\+I\+I\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+O\+F\+F\+S\+ET@{E\+C\+\_\+\+F\+I\+R\+S\+T\+\_\+\+S\+I\+I\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+O\+F\+F\+S\+ET}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+F\+I\+R\+S\+T\+\_\+\+S\+I\+I\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+O\+F\+F\+S\+ET}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+F\+I\+R\+S\+T\+\_\+\+S\+I\+I\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+O\+F\+F\+S\+ET~0x40}



Word offset of first S\+II category. 



Definition at line 98 of file globals.\+h.

\mbox{\label{globals_8h_a094d565a4898d8ed65222fcd6f96f6fb}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE}}
\index{E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE~8}



Size of a sync manager configuration page. 



Definition at line 101 of file globals.\+h.

\mbox{\label{globals_8h_a7ef0b04594f3ae62859391b9307cbb1f}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+M\+A\+X\+\_\+\+F\+M\+M\+US@{E\+C\+\_\+\+M\+A\+X\+\_\+\+F\+M\+M\+US}}
\index{E\+C\+\_\+\+M\+A\+X\+\_\+\+F\+M\+M\+US@{E\+C\+\_\+\+M\+A\+X\+\_\+\+F\+M\+M\+US}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+M\+A\+X\+\_\+\+F\+M\+M\+US}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+M\+A\+X\+\_\+\+F\+M\+M\+US~16}



Maximum number of F\+M\+M\+Us per slave. 



Definition at line 104 of file globals.\+h.

\mbox{\label{globals_8h_a1e0360410ca3cc2357e27b566951d52d}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+F\+M\+M\+U\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+F\+M\+M\+U\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE}}
\index{E\+C\+\_\+\+F\+M\+M\+U\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+F\+M\+M\+U\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+F\+M\+M\+U\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+F\+M\+M\+U\+\_\+\+P\+A\+G\+E\+\_\+\+S\+I\+ZE~16}



Size of an F\+M\+MU configuration page. 



Definition at line 107 of file globals.\+h.

\mbox{\label{globals_8h_a5fd0d53ff30f80384b0d7f26a159a79e}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+C\+O\+U\+NT@{E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+C\+O\+U\+NT}}
\index{E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+C\+O\+U\+NT@{E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+C\+O\+U\+NT}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+C\+O\+U\+NT}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+S\+Y\+N\+C\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+C\+O\+U\+NT~2}



Number of DC sync signals. 



Definition at line 110 of file globals.\+h.

\mbox{\label{globals_8h_ac67cff75d900b9f1112a4c1a635e495d}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+N\+A\+M\+E\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+N\+A\+M\+E\+\_\+\+S\+I\+ZE}}
\index{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+N\+A\+M\+E\+\_\+\+S\+I\+ZE@{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+N\+A\+M\+E\+\_\+\+S\+I\+ZE}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+N\+A\+M\+E\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+D\+A\+T\+A\+G\+R\+A\+M\+\_\+\+N\+A\+M\+E\+\_\+\+S\+I\+ZE~20}



Size of the datagram description string. 

This is also used as the maximum lenth of EoE device names. 

Definition at line 116 of file globals.\+h.

\mbox{\label{globals_8h_a372d9b2d6575b0a9550533be831424c2}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+M\+A\+SK@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+M\+A\+SK}}
\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+M\+A\+SK@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+M\+A\+SK}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+M\+A\+SK}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+M\+A\+SK~0x0F}



Slave state mask. 

Apply this mask to a slave state byte to get the slave state without the error flag. 

Definition at line 123 of file globals.\+h.

\mbox{\label{globals_8h_af96ee5cdd88c3c45a899d15ce40f371c}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+I\+N\+FO@{E\+C\+\_\+\+I\+N\+FO}}
\index{E\+C\+\_\+\+I\+N\+FO@{E\+C\+\_\+\+I\+N\+FO}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+I\+N\+FO}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+I\+N\+FO(\begin{DoxyParamCaption}\item[{}]{fmt,  }\item[{}]{args... }\end{DoxyParamCaption})~printk(K\+E\+R\+N\+\_\+\+I\+N\+FO \char`\"{}Ether\+C\+A\+T\+: \char`\"{} fmt, \#\#args)}



Convenience macro for printing Ether\+C\+A\+T-\/specific information to syslog. 

This will print the message in {\itshape fmt} with a prefixed \char`\"{}\+Ether\+C\+A\+T\+: \char`\"{}.


\begin{DoxyParams}{Parameters}
{\em fmt} & format string (like in printf()) \\
\hline
{\em args} & arguments (optional) \\
\hline
\end{DoxyParams}


Definition at line 217 of file globals.\+h.

\mbox{\label{globals_8h_aed23297031f2f23bb5d005bb586790cf}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+E\+RR@{E\+C\+\_\+\+E\+RR}}
\index{E\+C\+\_\+\+E\+RR@{E\+C\+\_\+\+E\+RR}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+E\+RR}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+E\+RR(\begin{DoxyParamCaption}\item[{}]{fmt,  }\item[{}]{args... }\end{DoxyParamCaption})~printk(K\+E\+R\+N\+\_\+\+E\+RR \char`\"{}Ether\+C\+AT E\+R\+R\+O\+R\+: \char`\"{} fmt, \#\#args)}



Convenience macro for printing Ether\+C\+A\+T-\/specific errors to syslog. 

This will print the message in {\itshape fmt} with a prefixed \char`\"{}\+Ether\+C\+A\+T E\+R\+R\+O\+R\+: \char`\"{}.


\begin{DoxyParams}{Parameters}
{\em fmt} & format string (like in printf()) \\
\hline
{\em args} & arguments (optional) \\
\hline
\end{DoxyParams}


Definition at line 227 of file globals.\+h.

\mbox{\label{globals_8h_a268d5c7947aba061aee9ba26ae5e54cf}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+W\+A\+RN@{E\+C\+\_\+\+W\+A\+RN}}
\index{E\+C\+\_\+\+W\+A\+RN@{E\+C\+\_\+\+W\+A\+RN}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+W\+A\+RN}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+W\+A\+RN(\begin{DoxyParamCaption}\item[{}]{fmt,  }\item[{}]{args... }\end{DoxyParamCaption})~printk(K\+E\+R\+N\+\_\+\+W\+A\+R\+N\+I\+NG \char`\"{}Ether\+C\+AT W\+A\+R\+N\+I\+N\+G\+: \char`\"{} fmt, \#\#args)}



Convenience macro for printing Ether\+C\+A\+T-\/specific warnings to syslog. 

This will print the message in {\itshape fmt} with a prefixed \char`\"{}\+Ether\+C\+A\+T W\+A\+R\+N\+I\+N\+G\+: \char`\"{}.


\begin{DoxyParams}{Parameters}
{\em fmt} & format string (like in printf()) \\
\hline
{\em args} & arguments (optional) \\
\hline
\end{DoxyParams}


Definition at line 237 of file globals.\+h.

\mbox{\label{globals_8h_af1b60b9f7b88d42c2563c45dbd4ca478}} 
\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+D\+BG@{E\+C\+\_\+\+D\+BG}}
\index{E\+C\+\_\+\+D\+BG@{E\+C\+\_\+\+D\+BG}!globals.\+h@{globals.\+h}}
\subsubsection{E\+C\+\_\+\+D\+BG}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+D\+BG(\begin{DoxyParamCaption}\item[{}]{fmt,  }\item[{}]{args... }\end{DoxyParamCaption})~printk(K\+E\+R\+N\+\_\+\+D\+E\+B\+UG \char`\"{}Ether\+C\+AT D\+E\+B\+U\+G\+: \char`\"{} fmt, \#\#args)}



Convenience macro for printing Ether\+C\+AT debug messages to syslog. 

This will print the message in {\itshape fmt} with a prefixed \char`\"{}\+Ether\+C\+A\+T D\+E\+B\+U\+G\+: \char`\"{}.


\begin{DoxyParams}{Parameters}
{\em fmt} & format string (like in printf()) \\
\hline
{\em args} & arguments (optional) \\
\hline
\end{DoxyParams}


Definition at line 247 of file globals.\+h.



\subsection{Typedef Documentation}
\mbox{\label{globals_8h_a8d9ffff7dbe1babaa4786a63f2860d57}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+slave\+\_\+t@{ec\+\_\+slave\+\_\+t}}
\index{ec\+\_\+slave\+\_\+t@{ec\+\_\+slave\+\_\+t}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+t}
{\footnotesize\ttfamily typedef struct \textbf{ ec\+\_\+slave} \textbf{ ec\+\_\+slave\+\_\+t}}

\begin{DoxySeeAlso}{See also}
\doxyref{ec\+\_\+slave}{p.}{structec__slave}. 
\end{DoxySeeAlso}


Definition at line 313 of file globals.\+h.



\subsection{Enumeration Type Documentation}
\mbox{\label{globals_8h_a0e9c38c7520909d649fac451046dcde0}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+slave\+\_\+state\+\_\+t@{ec\+\_\+slave\+\_\+state\+\_\+t}}
\index{ec\+\_\+slave\+\_\+state\+\_\+t@{ec\+\_\+slave\+\_\+state\+\_\+t}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+state\+\_\+t}
{\footnotesize\ttfamily enum \textbf{ ec\+\_\+slave\+\_\+state\+\_\+t}}



State of an Ether\+C\+AT slave. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+U\+N\+K\+N\+O\+WN@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+U\+N\+K\+N\+O\+WN}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+U\+N\+K\+N\+O\+WN@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+U\+N\+K\+N\+O\+WN}}}\mbox{\label{globals_8h_a0e9c38c7520909d649fac451046dcde0ae9edba07c48fe21c2e3ee549f98a0f59}} 
E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+U\+N\+K\+N\+O\+WN&unknown state \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+I\+N\+IT@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+I\+N\+IT}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+I\+N\+IT@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+I\+N\+IT}}}\mbox{\label{globals_8h_a0e9c38c7520909d649fac451046dcde0af8bd16b734a32ab829a51f81620edfff}} 
E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+I\+N\+IT&I\+N\+IT state (no mailbox communication, no IO) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+P\+R\+E\+OP@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+P\+R\+E\+OP}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+P\+R\+E\+OP@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+P\+R\+E\+OP}}}\mbox{\label{globals_8h_a0e9c38c7520909d649fac451046dcde0a1db532f4df475e41ee0613551f7bdc0c}} 
E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+P\+R\+E\+OP&P\+R\+E\+OP state (mailbox communication, no IO) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+B\+O\+OT@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+B\+O\+OT}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+B\+O\+OT@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+B\+O\+OT}}}\mbox{\label{globals_8h_a0e9c38c7520909d649fac451046dcde0a071e3e465f3a44800dbca990ce475513}} 
E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+B\+O\+OT&Bootstrap state (mailbox communication, firmware update) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+A\+F\+E\+OP@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+A\+F\+E\+OP}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+A\+F\+E\+OP@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+A\+F\+E\+OP}}}\mbox{\label{globals_8h_a0e9c38c7520909d649fac451046dcde0a42a5127410509dad07baf40ba938ecf4}} 
E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+A\+F\+E\+OP&S\+A\+F\+E\+OP (mailbox communication and input update) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+OP@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+OP}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+OP@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+OP}}}\mbox{\label{globals_8h_a0e9c38c7520909d649fac451046dcde0a321dab0f12d522422d158b8cf64351f8}} 
E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+OP&OP (mailbox communication and input/output update) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+A\+C\+K\+\_\+\+E\+RR@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+A\+C\+K\+\_\+\+E\+RR}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+A\+C\+K\+\_\+\+E\+RR@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+A\+C\+K\+\_\+\+E\+RR}}}\mbox{\label{globals_8h_a0e9c38c7520909d649fac451046dcde0afa4a479453f36ac36204ece05aeacd82}} 
E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+S\+T\+A\+T\+E\+\_\+\+A\+C\+K\+\_\+\+E\+RR&Acknowledge/\+Error bit (no actual state) \\
\hline

\end{DoxyEnumFields}


Definition at line 127 of file globals.\+h.

\mbox{\label{globals_8h_adf764cbdea00d65edcd07bb9953ad2b7}} 
\subsubsection{anonymous enum}
{\footnotesize\ttfamily anonymous enum}



Supported mailbox protocols. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+A\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+A\+OE}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+A\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+A\+OE}}}\mbox{\label{globals_8h_adf764cbdea00d65edcd07bb9953ad2b7af55a73bce8de5380f696812292a1ff1b}} 
E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+A\+OE&A\+DS over Ether\+C\+AT. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+E\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+E\+OE}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+E\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+E\+OE}}}\mbox{\label{globals_8h_adf764cbdea00d65edcd07bb9953ad2b7a75ced95568023bf9ad616c8d2b4f3ae2}} 
E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+E\+OE&Ethernet over Ether\+C\+AT. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+C\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+C\+OE}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+C\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+C\+OE}}}\mbox{\label{globals_8h_adf764cbdea00d65edcd07bb9953ad2b7a228d7270dad743f55f7d42719e406076}} 
E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+C\+OE&C\+A\+Nopen over Ether\+C\+AT. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+F\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+F\+OE}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+F\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+F\+OE}}}\mbox{\label{globals_8h_adf764cbdea00d65edcd07bb9953ad2b7a02785e699946f757c7846b87a9703d4b}} 
E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+F\+OE&File-\/\+Access over Ether\+C\+AT. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+S\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+S\+OE}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+S\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+S\+OE}}}\mbox{\label{globals_8h_adf764cbdea00d65edcd07bb9953ad2b7ab5ebd52d91b7f482bde14f6dcac7c7c4}} 
E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+S\+OE&Servo-\/\+Profile over Ether\+C\+AT. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+V\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+V\+OE}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+V\+OE@{E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+V\+OE}}}\mbox{\label{globals_8h_adf764cbdea00d65edcd07bb9953ad2b7aa29a7302a657cfa9b046d7f1dd7ceb95}} 
E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+V\+OE&Vendor specific. \\
\hline

\end{DoxyEnumFields}


Definition at line 146 of file globals.\+h.

\mbox{\label{globals_8h_a5cbf78c1663f1a9ba4d69b816bcd00f7}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+slave\+\_\+dc\+\_\+range\+\_\+t@{ec\+\_\+slave\+\_\+dc\+\_\+range\+\_\+t}}
\index{ec\+\_\+slave\+\_\+dc\+\_\+range\+\_\+t@{ec\+\_\+slave\+\_\+dc\+\_\+range\+\_\+t}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+dc\+\_\+range\+\_\+t}
{\footnotesize\ttfamily enum \textbf{ ec\+\_\+slave\+\_\+dc\+\_\+range\+\_\+t}}



Ether\+C\+AT slave distributed clocks range. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+D\+C\+\_\+32@{E\+C\+\_\+\+D\+C\+\_\+32}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+D\+C\+\_\+32@{E\+C\+\_\+\+D\+C\+\_\+32}}}\mbox{\label{globals_8h_a5cbf78c1663f1a9ba4d69b816bcd00f7a25afc86435cb41db03f0a6e95e7b986e}} 
E\+C\+\_\+\+D\+C\+\_\+32&32 bit. \\
\hline

\end{DoxyEnumFields}


Definition at line 175 of file globals.\+h.

\mbox{\label{globals_8h_a99fb83031ce9923c84392b4e92f956b5}} 
\subsubsection{anonymous enum}
{\footnotesize\ttfamily anonymous enum}



Access states for S\+DO entries. 

The access rights are managed per AL state. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+P\+R\+E\+OP@{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+P\+R\+E\+OP}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+P\+R\+E\+OP@{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+P\+R\+E\+OP}}}\mbox{\label{globals_8h_a99fb83031ce9923c84392b4e92f956b5a39b7036e6f688e92bfe62c3301312936}} 
E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+P\+R\+E\+OP&Access rights in P\+R\+E\+OP. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+S\+A\+F\+E\+OP@{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+S\+A\+F\+E\+OP}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+S\+A\+F\+E\+OP@{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+S\+A\+F\+E\+OP}}}\mbox{\label{globals_8h_a99fb83031ce9923c84392b4e92f956b5ad448daffa47d8f17532746cf993924ce}} 
E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+S\+A\+F\+E\+OP&Access rights in S\+A\+F\+E\+OP. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+OP@{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+OP}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+OP@{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+OP}}}\mbox{\label{globals_8h_a99fb83031ce9923c84392b4e92f956b5ab035d5252d6daaa9bc55538c1a9eaecb}} 
E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+OP&Access rights in OP. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+C\+O\+U\+NT@{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+C\+O\+U\+NT}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+C\+O\+U\+NT@{E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+C\+O\+U\+NT}}}\mbox{\label{globals_8h_a99fb83031ce9923c84392b4e92f956b5a6cef0b079c10f308702a85dfe6a9c466}} 
E\+C\+\_\+\+S\+D\+O\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+A\+C\+C\+E\+S\+S\+\_\+\+C\+O\+U\+NT&Number of states. \\
\hline

\end{DoxyEnumFields}


Definition at line 192 of file globals.\+h.

\mbox{\label{globals_8h_ad1a2101422888687598d7e1a630c6343}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+device\+\_\+index\+\_\+t@{ec\+\_\+device\+\_\+index\+\_\+t}}
\index{ec\+\_\+device\+\_\+index\+\_\+t@{ec\+\_\+device\+\_\+index\+\_\+t}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+device\+\_\+index\+\_\+t}
{\footnotesize\ttfamily enum \textbf{ ec\+\_\+device\+\_\+index\+\_\+t}}



Master devices. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+M\+A\+IN@{E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+M\+A\+IN}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+M\+A\+IN@{E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+M\+A\+IN}}}\mbox{\label{globals_8h_ad1a2101422888687598d7e1a630c6343a6cc7c24499003f339df547ab73605f13}} 
E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+M\+A\+IN&Main device. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+B\+A\+C\+K\+UP@{E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+B\+A\+C\+K\+UP}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+B\+A\+C\+K\+UP@{E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+B\+A\+C\+K\+UP}}}\mbox{\label{globals_8h_ad1a2101422888687598d7e1a630c6343ab269739586dbb817c1e0ff42e74c5111}} 
E\+C\+\_\+\+D\+E\+V\+I\+C\+E\+\_\+\+B\+A\+C\+K\+UP&Backup device. \\
\hline

\end{DoxyEnumFields}


Definition at line 201 of file globals.\+h.

\mbox{\label{globals_8h_af8e216ffa0b8f5e3ee20edd4c17d6174}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+internal\+\_\+request\+\_\+state\+\_\+t@{ec\+\_\+internal\+\_\+request\+\_\+state\+\_\+t}}
\index{ec\+\_\+internal\+\_\+request\+\_\+state\+\_\+t@{ec\+\_\+internal\+\_\+request\+\_\+state\+\_\+t}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+internal\+\_\+request\+\_\+state\+\_\+t}
{\footnotesize\ttfamily enum \textbf{ ec\+\_\+internal\+\_\+request\+\_\+state\+\_\+t}}



Generic request state. 

\begin{DoxyAttention}{Attention}
If ever changing this, please be sure to adjust the {\itshape state\+\_\+table} in \doxyref{master/sdo\+\_\+request.\+c}{p.}{sdo__request_8c}. 
\end{DoxyAttention}


Definition at line 290 of file globals.\+h.

\mbox{\label{globals_8h_ab62b6e667f97a3b63d18f8077487d249}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+origin\+\_\+t@{ec\+\_\+origin\+\_\+t}}
\index{ec\+\_\+origin\+\_\+t@{ec\+\_\+origin\+\_\+t}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+origin\+\_\+t}
{\footnotesize\ttfamily enum \textbf{ ec\+\_\+origin\+\_\+t}}



Origin type. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+I\+N\+T\+E\+R\+N\+AL@{E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+I\+N\+T\+E\+R\+N\+AL}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+I\+N\+T\+E\+R\+N\+AL@{E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+I\+N\+T\+E\+R\+N\+AL}}}\mbox{\label{globals_8h_ab62b6e667f97a3b63d18f8077487d249ab9bbe16f248855308e1ac168fd00a4a4}} 
E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+I\+N\+T\+E\+R\+N\+AL&Internal. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+E\+X\+T\+E\+R\+N\+AL@{E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+E\+X\+T\+E\+R\+N\+AL}!globals.\+h@{globals.\+h}}\index{globals.\+h@{globals.\+h}!E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+E\+X\+T\+E\+R\+N\+AL@{E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+E\+X\+T\+E\+R\+N\+AL}}}\mbox{\label{globals_8h_ab62b6e667f97a3b63d18f8077487d249a9f7450cec35e7aba63f3de7520f41c4a}} 
E\+C\+\_\+\+O\+R\+I\+G\+\_\+\+E\+X\+T\+E\+R\+N\+AL&External. \\
\hline

\end{DoxyEnumFields}


Definition at line 306 of file globals.\+h.



\subsection{Function Documentation}
\mbox{\label{globals_8h_af9b1cee5f8eb11448141bd02d52f44ac}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+print\+\_\+data@{ec\+\_\+print\+\_\+data}}
\index{ec\+\_\+print\+\_\+data@{ec\+\_\+print\+\_\+data}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+print\+\_\+data()}
{\footnotesize\ttfamily void ec\+\_\+print\+\_\+data (\begin{DoxyParamCaption}\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{size }\end{DoxyParamCaption})}



Outputs frame contents for debugging purposes. 

If the data block is larger than 256 bytes, only the first 128 and the last 128 bytes will be shown 
\begin{DoxyParams}{Parameters}
{\em data} & pointer to data \\
\hline
{\em size} & number of bytes to output \\
\hline
\end{DoxyParams}


Definition at line 341 of file module.\+c.

\mbox{\label{globals_8h_a5492e579e30e1bb9351cd601a89e238b}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+state\+\_\+string@{ec\+\_\+state\+\_\+string}}
\index{ec\+\_\+state\+\_\+string@{ec\+\_\+state\+\_\+string}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+state\+\_\+string()}
{\footnotesize\ttfamily size\+\_\+t ec\+\_\+state\+\_\+string (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{states,  }\item[{char $\ast$}]{buffer,  }\item[{uint8\+\_\+t}]{multi }\end{DoxyParamCaption})}



Prints slave states in clear text. 

\begin{DoxyReturn}{Returns}
Size of the created string. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em states} & slave states \\
\hline
{\em buffer} & target buffer (min. E\+C\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+S\+I\+ZE bytes) \\
\hline
{\em multi} & Show multi-\/state mask. \\
\hline
\end{DoxyParams}


Definition at line 394 of file module.\+c.

\mbox{\label{globals_8h_a494695f2cebf0403348cb6281e0af0c9}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+mac\+\_\+print@{ec\+\_\+mac\+\_\+print}}
\index{ec\+\_\+mac\+\_\+print@{ec\+\_\+mac\+\_\+print}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+mac\+\_\+print()}
{\footnotesize\ttfamily ssize\+\_\+t ec\+\_\+mac\+\_\+print (\begin{DoxyParamCaption}\item[{const uint8\+\_\+t $\ast$}]{mac,  }\item[{char $\ast$}]{buffer }\end{DoxyParamCaption})}



Print a M\+AC address to a buffer. 

The buffer size must be at least E\+C\+\_\+\+M\+A\+X\+\_\+\+M\+A\+C\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+S\+I\+ZE.

\begin{DoxyReturn}{Returns}
number of bytes written. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em mac} & M\+AC address \\
\hline
{\em buffer} & Target buffer. \\
\hline
\end{DoxyParams}


Definition at line 242 of file module.\+c.

\mbox{\label{globals_8h_a41d094eb49bc156c06af74b02eb8708d}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+mac\+\_\+is\+\_\+zero@{ec\+\_\+mac\+\_\+is\+\_\+zero}}
\index{ec\+\_\+mac\+\_\+is\+\_\+zero@{ec\+\_\+mac\+\_\+is\+\_\+zero}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+mac\+\_\+is\+\_\+zero()}
{\footnotesize\ttfamily int ec\+\_\+mac\+\_\+is\+\_\+zero (\begin{DoxyParamCaption}\item[{const uint8\+\_\+t $\ast$}]{mac }\end{DoxyParamCaption})}

\begin{DoxyReturn}{Returns}
true, if the M\+AC address is all-\/zero. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em mac} & M\+AC address. \\
\hline
\end{DoxyParams}


Definition at line 263 of file module.\+c.

\mbox{\label{globals_8h_aba359debd8aebe89887ab68f1c831ab5}} 
\index{globals.\+h@{globals.\+h}!ecrt\+\_\+request\+\_\+master\+\_\+err@{ecrt\+\_\+request\+\_\+master\+\_\+err}}
\index{ecrt\+\_\+request\+\_\+master\+\_\+err@{ecrt\+\_\+request\+\_\+master\+\_\+err}!globals.\+h@{globals.\+h}}
\subsubsection{ecrt\+\_\+request\+\_\+master\+\_\+err()}
{\footnotesize\ttfamily \textbf{ ec\+\_\+master\+\_\+t}$\ast$ ecrt\+\_\+request\+\_\+master\+\_\+err (\begin{DoxyParamCaption}\item[{unsigned int}]{master\+\_\+index }\end{DoxyParamCaption})}



Request a master. 

Same as \doxyref{ecrt\+\_\+request\+\_\+master()}{p.}{group__ApplicationInterface_gafb85534b6fcba3fa1fab6c81173b2ed1}, but with E\+R\+R\+\_\+\+P\+T\+R() return value.

\begin{DoxyReturn}{Returns}
Requested master. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em master\+\_\+index} & Master index. \\
\hline
\end{DoxyParams}


Definition at line 530 of file module.\+c.



\subsection{Variable Documentation}
\mbox{\label{globals_8h_ab5580493c8bf2eaa43174a4fe78abc72}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+master\+\_\+version\+\_\+str@{ec\+\_\+master\+\_\+version\+\_\+str}}
\index{ec\+\_\+master\+\_\+version\+\_\+str@{ec\+\_\+master\+\_\+version\+\_\+str}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+master\+\_\+version\+\_\+str}
{\footnotesize\ttfamily char$\ast$ ec\+\_\+master\+\_\+version\+\_\+str}



Version string. 



Definition at line 71 of file module.\+c.

\mbox{\label{globals_8h_a3a9e581016f6c49ce672ccd2784c0b50}} 
\index{globals.\+h@{globals.\+h}!ec\+\_\+request\+\_\+state\+\_\+translation\+\_\+table@{ec\+\_\+request\+\_\+state\+\_\+translation\+\_\+table}}
\index{ec\+\_\+request\+\_\+state\+\_\+translation\+\_\+table@{ec\+\_\+request\+\_\+state\+\_\+translation\+\_\+table}!globals.\+h@{globals.\+h}}
\subsubsection{ec\+\_\+request\+\_\+state\+\_\+translation\+\_\+table}
{\footnotesize\ttfamily const \textbf{ ec\+\_\+request\+\_\+state\+\_\+t} ec\+\_\+request\+\_\+state\+\_\+translation\+\_\+table[$\,$]}



Global request state type translation table. 

Translates an internal request state to an external one. 

Definition at line 651 of file module.\+c.

